// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc
package com.google.gson.internal.bind;
import com.google.gson.JsonSyntaxException;
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
import com.google.gson.stream.JsonWriter;
import java.util.BitSet;
// Referenced classes of package com.google.gson.internal.bind:
// N
final class y extends TypeAdapter
{
y()
{
}
public BitSet a(JsonReader jsonreader)
{
BitSet bitset;
JsonToken jsontoken;
int i;
if (jsonreader.peek() == JsonToken.NULL)
{
jsonreader.nextNull();
return null;
}
bitset = new BitSet();
jsonreader.beginArray();
jsontoken = jsonreader.peek();
i = 0;
_L2:
boolean flag;
if (jsontoken == JsonToken.END_ARRAY)
{
break MISSING_BLOCK_LABEL_210;
}
switch (N.a[jsontoken.ordinal()])
{
default:
throw new JsonSyntaxException((new StringBuilder()).append("Invalid bitset value type: ").append(jsontoken).toString());
case 2: // '\002'
break; /* Loop/switch isn't completed */
case 3: // '\003'
break MISSING_BLOCK_LABEL_150;
case 1: // '\001'
if (jsonreader.nextInt() != 0)
{
flag = true;
} else
{
flag = false;
}
break;
}
_L3:
if (flag)
{
bitset.set(i);
}
i++;
jsontoken = jsonreader.peek();
if (true) goto _L2; else goto _L1
_L1:
flag = jsonreader.nextBoolean();
goto _L3
String s = jsonreader.nextString();
int j;
try
{
j = Integer.parseInt(s);
}
catch (NumberFormatException numberformatexception)
{
throw new JsonSyntaxException((new StringBuilder()).append("Error: Expecting: bitset number value (1, 0), Found: ").append(s).toString());
}
if (j != 0)
{
flag = true;
} else
{
flag = false;
}
goto _L3
jsonreader.endArray();
return bitset;
}
public void a(JsonWriter jsonwriter, BitSet bitset)
{
if (bitset == null)
{
jsonwriter.nullValue();
return;
}
jsonwriter.beginArray();
int i = 0;
while (i < bitset.length())
{
int j;
if (bitset.get(i))
{
j = 1;
} else
{
j = 0;
}
jsonwriter.value(j);
i++;
}
jsonwriter.endArray();
}
public Object read(JsonReader jsonreader)
{
return a(jsonreader);
}
public void write(JsonWriter jsonwriter, Object obj)
{
a(jsonwriter, (BitSet)obj);
}
}